﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Input.Dao.LivingMemberLivingDao
 * 类型：       数据访问层
 * 功能说明：   会员生活模型信息数据对象
 * 作者：       黄鑫
 * 创建日期：   2007/10/30
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Input.Bean;
namespace Shpm.App.Input.Dao
{
    public class LivingMemberLivingDao : ShpmBaseDao
    {

        // 从数据字典中取得画面列表项内容
        public const string FIND_BY_CATALOG = "CommonDictionary.FindByCatalog";

        // 生活信息 list
        public const string LIST_LIVING = "LivingMemberLiving.LstLiving";

        // 费用信息 list
        public const string LIST_FEE = "LivingMemberLiving.LstFee";

        // 生活信息 insert
        public const string INSERT_LIVING = "LivingMemberLiving.InsertLiving";

        // 费用信息 insert
        public const string INSERT_FEE = "LivingMemberLiving.InsertFee";

        // 生活信息 delete
        public const string DELETE_LIVING = "LivingMemberLiving.DeleteLiving";

        // 费用信息 delete
        public const string DELETE_FEE = "LivingMemberLiving.DeleteFee";


        public LivingMemberLivingDao()
        {
        }

        /*
         *名称： FindByCatalog
         *功能： 取得数据字典列表对象。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表 
         *说明： 从数据字典中取得画面列表项内容
        */
        public IList FindByCatalog(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_CATALOG, paramBean);
        }

        /*
         *名称： ListLiving
         *功能： 取得生活信息列表对象。
         *参数： paramBean - 检索参数
         *返回： 职位信息列表 
         *说明： 从生活信息中取得画面列表项内容
        */
        public IList ListLiving(LivingMemberLivingBean paramBean)
        {
            return base.QueryForList(LIST_LIVING, paramBean);
        }

        /*
         *名称： ListFee
         *功能： 取得费用信息列表对象。
         *参数： paramBean - 检索参数
         *返回： 费用信息列表 
         *说明： 从费用信息中取得画面列表项内容
        */
        public IList ListFee(LivingMemberFeeBean paramBean)
        {
            return base.QueryForList(LIST_FEE, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录生活信息对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 职位信息 insert 
        */
        public int Insert(IList lstLiving,IList lstFee,string memberNo,string userId)
        {
            try
            {
                base.BeginTransaction();
                LivingMemberLivingBean beanLiving = new LivingMemberLivingBean();
                LivingMemberFeeBean beanFee = new LivingMemberFeeBean();
                beanLiving.MemberNo = memberNo;
                beanFee.MemberNo = memberNo;
                base.Delete(DELETE_LIVING,beanLiving);
                base.Delete(DELETE_FEE,beanFee);
                foreach(LivingMemberLivingBean bean in lstLiving)
                {
                    if(bean.ChooseFlg == true)
                    {
                        bean.UserId = userId;
                        bean.MemberNo = memberNo;
                        base.Insert(INSERT_LIVING,bean);
                    }
                }
                foreach (LivingMemberFeeBean bean in lstFee)
                {
                    if (bean.ChooseFlg == true)
                    {
                        bean.UserId = userId;
                        bean.MemberNo = memberNo;
                        base.Insert(INSERT_FEE, bean);
                    }
                }
                base.CommitTransaction();
                return 1;
            }
            catch (Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }
        }
   }
}